How to use ultrasonic sensor HC-SR04 without pausing the program?

Ultrasonic library that i have downloaded: http://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip
Hello, i am new to using ultrasonic sensors, and i have had this problem:
I have a car that follows a black line, and stops when it sees another car, but the ranging command of the library functions like pulseIn, pausing the program until the pulse is received, and because of that my arduino car goes off the track.
Is it possible to make the ultrasonic sensor to not pause the program, so my car goes off the track?
I am using Arduino UNO.
Code:

#include <Ultrasonic.h>
int echoPin = 2;
int trigPin = 4;
long duration, dist_cm; //переменная для храения длительности
Ultrasonic ultrasonic(trigPin, echoPin);
int sensor_right = 10;
int sensor_left = 12;
int sensor_left_value;
int sensor_right_value;
int in2_LB = 9;
int in1_LF = 8;
int in4_RB = 7;
int in3_RF = 6;
int enb1=5;
int enb2=3;
int sped=180;
void setup(){
 pinMode(sensor_left,INPUT);
 pinMode(sensor_right,INPUT);
 pinMode(in1_LF,OUTPUT);
 pinMode(in2_LB,OUTPUT);
 pinMode(in3_RF,OUTPUT);
 pinMode(in4_RB,OUTPUT);
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 Serial.begin(9600);
}
void loop(){
   
 sensor_left_value = digitalRead(sensor_left);
  sensor_right_value = digitalRead(sensor_right);
 // Serial.print("sensor left ");
 Serial.print(sensor_right_value);
Serial.println(sensor_left_value);
 // Serial.print("sensor right ");
  
  if (sensor_left_value ==  sensor_right_value ) 
  {
    analogWrite (enb1, sped);
    analogWrite (enb2, sped);
  digitalWrite(in1_LF,HIGH);
  digitalWrite(in2_LB,LOW);
  digitalWrite(in3_RF,HIGH);
  digitalWrite(in4_RB,LOW);  
  }

       if (sensor_left_value>sensor_right_value )
       {
           analogWrite (enb1, 0);
            analogWrite (enb2, sped);
            digitalWrite(in1_LF,LOW);
            digitalWrite(in2_LB,LOW);
            digitalWrite(in3_RF,HIGH);
            digitalWrite(in4_RB,LOW); 
            }
   if (sensor_left_value <sensor_right_value )
   {
                analogWrite (enb1, sped);
                analogWrite (enb2, 0);
                 digitalWrite(in1_LF,HIGH);
                 digitalWrite(in2_LB,LOW);
                 digitalWrite(in3_RF,LOW);
                 digitalWrite(in4_RB,LOW);
                 }
  dist_cm = ultrasonic.Ranging(CM);
  if (dist_cm>140) dist_cm=140;
  
   Serial.println(dist_cm); 
   if (dist_cm<21&&dist_cm>0)
   {
                analogWrite (enb1, 0);
                analogWrite (enb2, 0);
                 digitalWrite(in1_LF,LOW);
                 digitalWrite(in2_LB,LOW);
                 digitalWrite(in3_RF,LOW);
                 digitalWrite(in4_RB,LOW);
                 }
                 if(dist_cm==0)
  {
  dist_cm = ultrasonic.Ranging(CM);

  }           
                 
}

You need to add a timeout parameter to the pulseIn() function.

Hello and welcome

Try the NewPing library

Also read this: http://www.instructables.com/id/Non-blocking-Ultrasonic-Sensor-for-Arduino/?ALLSTEPS